package com.xwltz.web.controller;

import com.xwltz.core.domain.ActionResult;
import com.xwltz.core.utils.StringUtils;
import com.xwltz.web.domain.user.LoginUser;

/**
 * @description BaseController
 * @information on version 1.0 be created by @xwltz at 2021/12/28 16:08
 */
@SuppressWarnings("unused")
public class BaseController {
	/**
	 * 返回成功
	 */
	public ActionResult<Void> success() {
		return ActionResult.success();
	}

	/**
	 * 返回失败消息
	 */
	public ActionResult<Void> error() {
		return ActionResult.error();
	}

	/**
	 * 返回成功消息
	 */
	public ActionResult<Void> success(String message) {
		return ActionResult.success(message);
	}

	/**
	 * 返回失败消息
	 */
	public ActionResult<Void> error(String message) {
		return ActionResult.error(message);
	}

	/**
	 * 响应返回结果
	 *
	 * @param rows 影响行数
	 * @return 操作结果
	 */
	protected ActionResult<Void> toAjax(int rows) {
		return rows > 0 ? ActionResult.success() : ActionResult.error();
	}

	/**
	 * 响应返回结果
	 *
	 * @param result 结果
	 * @return 操作结果
	 */
	protected ActionResult<Void> toAjax(boolean result) {
		return result ? success() : error();
	}

	/**
	 * 页面跳转
	 */
	public String redirect(String url) {
		return StringUtils.format("redirect:{}", url);
	}

	/**
	 * 获取用户缓存信息
	 */
	public LoginUser getLoginUser() {
		// todo 接入 satoken
		return null;
	}

	/**
	 * 获取登录用户id
	 */
	public Long getUserId() {
		return getLoginUser().getUserId();
	}

	/**
	 * 获取登录部门id
	 */
	public Long getDeptId() {
		return getLoginUser().getDeptId();
	}

	/**
	 * 获取登录用户名
	 */
	public String getUsername() {
		return getLoginUser().getUsername();
	}
}
